package cn.cdeden.knowledge.enums;

import java.util.Arrays;

public enum FileSuffixTypeEnum {

    word("doc", "docx"),
    excel("xls", "xlsx"),
    ppt("ppt", "pptx"),
    other(""); // 其他未定义的类型

    private final String[] extensions;

    FileSuffixTypeEnum(String... extensions) {
        this.extensions = extensions;
    }

    /**
     * 根据文件后缀匹配文件类型
     *
     * @param extension 文件后缀
     * @return 文件类型
     */
    public static FileSuffixTypeEnum fromExtension(String extension) {
        if (extension == null || extension.isEmpty()) {
            return FileSuffixTypeEnum.other;
        }
        return Arrays.stream(FileSuffixTypeEnum.values())
            .filter(type -> Arrays.asList(type.extensions).contains(extension.toLowerCase()))
            .findFirst()
            .orElse(FileSuffixTypeEnum.other);
    }

    /**
     * 获取文件类型的扩展名列表
     *
     * @return 文件类型的扩展名数组
     */
    public String[] getExtensions() {
        return extensions;
    }
}
